One popular and economical way for utilizing printers and other peripheral devices within an enterprise including multiple distinct users/computers linked together on a network is to share the networked peripheral devices among the multiple distinct users/computers. Rather than providing a dedicated peripheral device for each client machine, networks leverage the inherent inter-machine communications capabilities of the networked client machines and servers to share peripheral devices among multiple users. Such sharing generally improves the degree of utilization of the peripheral devices and decreases the cost of providing the peripheral device services to the networked users.
Sharing peripheral devices by multiple networked clients presents the opportunity to provide access by each client to multiple instances of peripheral devices (e.g., printers) on the network, and the clients communicate with servers supporting the various peripheral devices through drivers. The peripheral device drivers generally comprise multiple components (e.g., files or combinations of files, also referred to as “assemblies”) that, in combination, provide a complete driver. The drivers support various aspects of interactions between a client and a server for a peripheral device connection.
Managing peripheral device drivers in large networks comprising multiple peripheral devices shared by hundreds of users involves finding, storing, installing (activating), and updating drivers on the client machines. Driver management under such circumstances is not easily accomplished by an administrator physically going to each client machine and physically loading new drivers. Previously, in known “point-and-print” printer driver management arrangements, printer drivers were transferred on a file-by-file basis from a source to a target client machine. Such update mechanisms led to a number of problems including: installing incomplete packages of software for a given device; failing to preserve proper versions of driver files for particular peripheral devices during file updates; and generally failing to maintain consistency/compatibility between drivers loaded upon peripheral device servers and clients.
Peripheral device driver mismatches are a concern when a peripheral device is utilized in a client/server networked peripheral device environment. The client and server operate best when running the same version of a driver. However, if a client can only run one version of a driver at a time, then a driver mismatch can arise when a client interacts with two servers running different versions of a same driver. When the device drivers are installed on the client machine, only one version of driver files having a same name are stored on the client machine. In the case of file name overlap between two different driver versions, a client machine/user stores only one of the two same-named files (e.g., the file version bearing the more recent file creation date). As a consequence, complete client-server driver compatibility can only be assured for one of multiple active servers, operating differing versions of a driver, to which a client has a peripheral device connection. This, in turn, leads to impaired functionality with regard to a peripheral device server that executes a device driver version including one or more component versions that have been displaced by other driver component versions in an active driver directory. Displacement of active drivers can occur at any one of multiple levels on the client machine, including: (1) at a driver level where the components of one driver version differ from a second driver version; (2) at a driver component level where the contents of a component differ between versions; and (3) at a driver file level where the contents of two same-named versions of a file differ.
Examples of incompatibilities/impaired functions that can arise from overwriting versions of drivers/components/files include unsupported configuration features, operations, and user interfaces.